Skip to content

fix(recording): keep each mixed Instant source at its own level - #2653

Closed
richiemcilroy wants to merge 1 commit into
mainfrom
fix/instant-mix-full-level
Closed

richiemcilroy wants to merge 1 commit into
mainfrom
fix/instant-mix-full-level

Conversation

@richiemcilroy

@richiemcilroy richiemcilroy commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

With system audio on, Instant recordings captured the microphone at half its amplitude (-6 dB). A microphone-only recording skips the mixer and kept full level, so turning system audio on made the voice quieter.

// crates/recording/src/sources/audio_mixer.rs
&format!("inputs={}:duration=longest:normalize=0", abuffers.len()),
  • amix normalises by default: every input is divided by the number of inputs, so a 0.5 microphone peak came out at 0.25 next to silent system audio.
  • With normalize=0 each source keeps its own level and the mix is their sum.
  • pcm_mixed_sources_keep_their_own_level feeds a 0.5 peak on each input and requires 0.5 out; it measures 0.25 on main.

amix's default normalisation divided every input by the number of inputs,
so with system audio on the microphone was recorded at half amplitude
(-6 dB) while a microphone-only recording, which skips the mixer, was not.
The mixer now sums its inputs at their own levels.
@vercel

vercel Bot commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
cap-status Ready Ready Preview Oct 16, 2026 6:28pm UTC

@richiemcilroy

Copy link
Copy Markdown
Member Author

Closing: 0.6.0 mixes at the same levels (amix default normalisation), so this is not a regression, and mixing at full level did not change the macOS 15 marker damage it was tested against. Raising the voice level with system audio on can be a separate product decision (with a limiter, since the sum can clip).

This branch was successfully deployed

2 active deployments
Preview – cap-web — c438da96 Deployed Oct 16, 2026 by vercel[bot]
Preview – cap-status — c438da96 Deployed Oct 16, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant